<html>
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  <title>
   Apache Mesos社区、生态、项目进展及规划概述  | 数螺 | NAUT IDEA
  </title>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" rel="stylesheet"/>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
  <style type="text/css">
   #xmain img {
                  max-width: 100%;
                  display: block;
                  margin-top: 10px;
                  margin-bottom: 10px;
                }

                #xmain p {
                    line-height:150%;
                    font-size: 16px;
                    margin-top: 20px;
                }

                #xmain h2 {
                    font-size: 24px;
                }

                #xmain h3 {
                    font-size: 20px;
                }

                #xmain h4 {
                    font-size: 18px;
                }


                .header {
	           background-color: #0099ff;
	           color: #ffffff;
	           margin-bottom: 20px;
	        }

	        .header p {
                  margin: 0px;
                  padding: 10px 0;
                  display: inline-block;  
                  vertical-align: middle;
                  font-size: 16px;
               }

               .header a {
                 color: white;
               }

              .header img {
                 height: 25px;
              }
  </style>
  <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">
  </script>
  <script src="http://nautstatic-10007657.file.myqcloud.com/static/css/readability.min.js" type="text/javascript">
  </script>
  <script type="text/javascript">
   $(document).ready(function() {
                 var loc = document.location;
                 var uri = {
                  spec: "http://dataunion.org/21814.html",
                  host: "http://dataunion.org",
                  prePath: "http://dataunion.org",
                  scheme: "http",
                  pathBase: "http://dataunion.org/"
                 };
    
                 var documentClone = document.cloneNode(true);
                 var article = new Readability(uri, documentClone).parse();
     
                 document.getElementById("xmain").innerHTML = article.content;
                });
  </script>
  <!-- 1466461002: Accept with keywords: (title(0.0):社区,规划,数盟,生态,项目, topn(0.2):社区,定义,作业,插件,贡献,行业资讯,数据挖掘,实际,空闲,方案,优先级,基础架构,文章,配额,差值,资源共享,项目,静态,用户,数盟,共享资源,资源,细粒度,功能,策略,系统,集群,时候,动态,资源分配).-->
 </head>
 <body onload="">
  <div class="header">
   <div class="container">
    <div class="row">
     <div class="col-xs-6 col-sm-6 text-left">
      <a href="/databee">
       <img src="http://nautidea-10007657.cos.myqcloud.com/logo_white.png"/>
      </a>
      <a href="/databee">
       <p>
        数螺
       </p>
      </a>
     </div>
     <div class="hidden-xs col-sm-6 text-right">
      <p>
       致力于数据科学的推广和知识传播
      </p>
     </div>
    </div>
   </div>
  </div>
  <div class="container text-center">
   <h1>
    Apache Mesos社区、生态、项目进展及规划概述
   </h1>
  </div>
  <div class="container" id="xmain">
   ﻿﻿
   <title>
    Apache Mesos社区、生态、项目进展及规划概述 | 数盟社区
   </title>
   <!-- All in One SEO Pack 2.2.7.6.2 by Michael Torbert of Semper Fi Web Design[32,74] -->
   <!-- /all in one seo pack -->
   <!--
<div align="center">
<a href="http://strata.oreilly.com.cn/hadoop-big-data-cn?cmp=mp-data-confreg-home-stcn16_dataunion_pc" target="_blank"><img src="http://dataunion.org/wp-content/uploads/2016/05/stratabj.jpg"/ ></a>
</div>
-->
   <header id="header-web">
    <div class="header-main">
     <hgroup class="logo">
      <h1>
       <a href="http://dataunion.org/" rel="home" title="数盟社区">
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/logo.png"/>
       </a>
      </h1>
     </hgroup>
     <!--logo-->
     <nav class="header-nav">
      <ul class="menu" id="menu-%e4%b8%bb%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-71" id="menu-item-71">
        <a href="http://dataunion.org/category/events" title="events">
         活动
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22457" id="menu-item-22457">
          <a href="http://dataunion.org/2016timeline">
           2016档期
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22459" id="menu-item-22459">
          <a href="http://dataunion.org/category/parterc">
           合作会议
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor menu-item-has-children menu-item-20869" id="menu-item-20869">
        <a href="http://dataunion.org/category/tech" title="articles">
         文章
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-20867" id="menu-item-20867">
          <a href="http://dataunion.org/category/tech/base" title="base">
           基础架构
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3302" id="menu-item-3302">
          <a href="http://dataunion.org/category/tech/ai" title="ai">
           人工智能
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3303" id="menu-item-3303">
          <a href="http://dataunion.org/category/tech/analysis" title="analysis">
           数据分析
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21920" id="menu-item-21920">
          <a href="http://dataunion.org/category/tech/dm">
           数据挖掘
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3314" id="menu-item-3314">
          <a href="http://dataunion.org/category/tech/viz" title="viz">
           可视化
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3305" id="menu-item-3305">
          <a href="http://dataunion.org/category/tech/devl" title="devl">
           编程语言
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-20876" id="menu-item-20876">
        <a href="http://dataunion.org/category/industry">
         行业
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-16328" id="menu-item-16328">
          <a href="http://dataunion.org/category/industry/case" title="case">
           行业应用
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2112" id="menu-item-2112">
          <a href="http://dataunion.org/category/industry/demo" title="demo">
           Demo展示
          </a>
         </li>
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21562" id="menu-item-21562">
          <a href="http://dataunion.org/category/industry/news">
           行业资讯
          </a>
         </li>
        </ul>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-311" id="menu-item-311">
        <a href="http://dataunion.org/category/sources" title="sources">
         资源
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20870" id="menu-item-20870">
        <a href="http://dataunion.org/category/books" title="book">
         图书
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21363" id="menu-item-21363">
        <a href="http://dataunion.org/category/training">
         课程
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-21853" id="menu-item-21853">
        <a href="http://dataunion.org/category/jobs">
         职位
        </a>
        <ul class="sub-menu">
         <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-22050" id="menu-item-22050">
          <a href="http://dataunion.org/category/career">
           职业规划
          </a>
         </li>
        </ul>
       </li>
      </ul>
     </nav>
     <!--header-nav-->
    </div>
   </header>
   <!--header-web-->
   <div id="main">
    <div id="soutab">
     <form action="http://dataunion.org/" class="search" method="get">
     </form>
    </div>
    <div id="container">
     <nav id="mbx">
      当前位置：
      <a href="http://dataunion.org">
       首页
      </a>
      &gt;
      <a href="http://dataunion.org/category/tech">
       文章
      </a>
      &gt;
      <a href="http://dataunion.org/category/tech/base">
       基础架构
      </a>
      &gt;  正文
     </nav>
     <!--mbx-->
     <article class="content">
      <header align="centre" class="contenttitle">
       <div class="mscc">
        <h1 class="mscctitle">
         <a href="http://dataunion.org/21814.html">
          Apache Mesos社区、生态、项目进展及规划概述
         </a>
        </h1>
        <address class="msccaddress ">
         <em>
          519 次阅读 -
         </em>
         <a href="http://dataunion.org/category/tech/base" rel="category tag">
          基础架构
         </a>
        </address>
       </div>
      </header>
      <div class="content-text">
       <h2>
        Mesos社区与生态
       </h2>
       <hr/>
       <p>
        首先介绍下Mesos社区。Mesos是Apache下的开源分布式资源管理框架，它被称为是分布式系统的内核，是DCOS，也就是我们通常所说的数据中心操作系统的的基础。Mesos最初是由加州大学伯克利分校的AMPLab开发的。
       </p>
       <p>
        2014 年参加Mesos conf的是260多人，2015年在西雅图一下涨到了700多人，所以Mesos在2015年是发展迅猛的一年。现在在Mesos社区贡献代码的主要是 Mesospher，Twitter，IBM和Intel，大多数committer都来自Mesospher和Twitter。但是现在Twitter 的好几个工程师都跳到了Mesosphere，同时Mesospher也有几个工程师跳到了Intel，现在IBM在社区逐渐发力，从目前代码的提交量和 参与人员来看，已经成为第二大贡献者。
       </p>
       <p>
        比较Mesos社区和OpenStack社区，Mesos和OpenStack到现在都已经发展5年 多了，OpenStack峰会上次的人数是将近7000人，Mesos才700来人。其实也不奇怪。OpenStack项目很多，有十几个核心项目，分摊 下来的话，其实一个项目大概也就对应6,700人，这么想Mesos社区还是挺活跃的。
       </p>
       <p>
        Mesos的生态系统在2015年发展也很快，出现 了好多新的Mesos用户和新的Mesos Framework。并且好多公司都在基于Mesos开发自己的Framework，包括VMware，Cisco，华为，苹果等等。个人感觉是，对于 Mesos，大家更看中的是上层的Framework，如何让上层的Framework来最大化地把Mesos用好，是好多公司一直在探索的，这些探索产 生的一些需求又推进了Mesos，形成一个良性循环。
       </p>
       <p>
        <img src="http://img.blog.csdn.net/20160204182339211"/>
       </p>
       <p>
        这个图很形象的描述了Mesos生态系统的发展历程：
       </p>
       <p>
        左上角是基于Mesos产生一些商业化的产品、服务，来帮助用户提供DCOS的功能。
       </p>
       <p>
        左下角就是用户在使用的时候，会有一些特殊定制的一些需求，服务提供商需要根据这些需求提供解决方案。
       </p>
       <p>
        右边这一步就是说如果是一些很common的解决方案的话，就需要把这些方案贡献给社区。
       </p>
       <p>
        然后就进入下一轮迭代开发：改进产品，提供解决方案，贡献社区，其实这个和OpenStack的开发流程基本上是一样的，都分为这三步。
       </p>
       <p>
        新 应用的话，主要是Mesos和越来越多的Framework开始继承了，包括Kibana，Kafka，Kubernetes，Cassandra, Swarm等等，另外一个值得注意的是华为贡献了他们的CloudFoundry的Framework，虽然现在还处在一个原型阶段，但是 CloudFoundry和Mesos集成又为Mesos生态圈添加了一员大将，如果有人在基于CloudFoundry做PaaS的，可以对 CloudFoundry和Mesos做一些调研，他们的集成能够让用户的数据中心资源使用更加充分。
       </p>
       <h2>
        Mesos演进
       </h2>
       <hr/>
       <p>
        接下来我们看下Mesos社区在最近一些版本发布的和即将发布的新功能，Mesos 0.27马上发布，现在已经开始了0.28的开发，至于什么时候到1.0，这个不好说。
       </p>
       <h3>
        Resources/Attributes discovery (Mesos-3366)
       </h3>
       <p>
        在 一个异构的计算环境中，客户在运行作业的时候，有时候对硬件有一些特定的需求，例如GPU，网卡类型，CPU架构，操作系统版本等等，但是这些属 性，Mesos Agent在启动的时候，都不会主动上报给Mesos Master节点的，用户虽然可以通—resources –attribute等flag在Mesos Agent启动的时候指定一些属性值，但是这样做的缺点是如果换了一台agent，这些属性值可能需要改变，不便于移植。所以社区就做了这个项目，能够实 现让用户在Mesos Agent启动的时候，指定一些专门做资源搜集，资源发现的一些hook脚本，让这些脚本帮忙搜集Mesos Agent上用户需要的指定资源，用户需要做的就是按照Mesos的需要写一些资源搜集，资源发现的插件，在Mesos Agent启动的时候作为参数传给Mesos Agent，就可以通过这些Hook把用户需要的资源搜集上来，同时这些插件可以在不同的Mesos Agent上去使用，用户不需要改代码，直接就可以运行。
       </p>
       <h3>
        Quota (Mesos-1791)
       </h3>
       <p>
        Quota主要是用来做 资源预留的，和Mesos的Dynamic/Static Reservation比较像，都是为某个role去预留一些资源，但是Dynamic/Static Reservation的资源预留主要是host级别的，但是Quota的资源预留是集群级别的，一旦资源被某个role通过Quota预留后，这些资源 就不能分给别的role去使用了。通常在我们提到Quota的时候，会主要关心两个值：Quota的Minimal Guarantee和Quota的maximal limit。现在Mesos的Quota支持只做了Minimal Guarantee，未来会加入对Quota maximal limit的支持。
       </p>
       <p>
        Quota支持的场景主要是当用户的一些 Framework开发完成后，可能需要运行一些很critical的作业，用户期望这些作业在提交后，能马上运行，不用等其它的Framework释放 资源。对于这种Framework的作业，用户可以为当前的Framework的role设定一个quota，然后当用户的作业运行的时候，可以马上得到 自己通过quota预留的资源，保证用户作业的SLA。设置Quota的前提是当前系统必须有足够的资源或者足够的没有被使用的offer，如果系统有足 够的空闲资源，用户可以直接预留这些空闲资源；如果空闲资源不够的话，Mesos会通过去decline一些没有使用的offer，也就是我们通常所说的 outstanding offer来增加一些系统的空闲资源，保证Quota的设置可以成功。
       </p>
       <h3>
        Implicit Role (Mesos-3988)
       </h3>
       <p>
        有 这个项目的主要原因是静态配置role的一些局限。在没有Implicit Role之前，在Mesos master启动的时候，需要通过—roles flag指定当前Mesos集群可用的role。当前方案的主要缺点是Mesos集群的role是静态的，不能动态的变化，这种配置很不灵活。
       </p>
       <p>
        例 如当用户在当前的Mesos集群添加一个新的Framework，并且这个Framework用的是一个新的role，这种情况下，就需要系统管理员重启 Mesos Master，在Mesos Master重启时，–roles flag加入即将加入的Framework的role，才能保证Mesos Master能够认识新的Framework的role，保证新的Framework可以成功注册。
       </p>
       <p>
        在引入了Implicit Role的功能后，用户在Mesos Master启动的时候好，可以不指定任何的role，所有role的都是默认创建的，例如在用户注册Framework或者设置Quota的时候，如果 当前集群没有Framework或者Quota需要的role，Mesos会自动创建这些role，当这些Framework被删除时，如果当前被删 的Framework的role没有任何Framework使用时，这个role就会被删掉。通过Implicit Role简化了用户创建，注册新的Framework的流程。
       </p>
       <h3>
        Oversubscription (Usage Slack/Allocation Slack Mesos-1607)
       </h3>
       <p>
        <img src="http://img.blog.csdn.net/20160204182417305"/>
        <br/>
        我们可以通过这张图介绍下Mesos中的资源超售，这张图主要是描述了一个agent上的所有的资源类型。资源超售现在分两类，第一类是Usage Slack的资源超售，第二个是Allocation Slack的资源超售。这两种超售类型会接先来详细介绍。
       </p>
       <p>
        资源超售主要是在可撤销的资源上利用暂时没有使用的资源来运行tasks/executors，而 Mesos 可以随时撤销任务。Mesos可以利用资源超售提升系统的资源利用率。
       </p>
       <p>
        对于Usage Slack类型的资源超售，它有两个插件来控制：资源估算和服务质量（QoS）控制，同时对现有的资源进行分配、资源监视器和 Mesos Slave 进行了扩展。
       </p>
       <ul>
        <li>
         Reserved Resources Resources – 预留资源，主要有两类，一类是静态预留，一类是动态预留，静态预留可以在Mesos agent启动的时候通过“–resources”参数设置，动态预留有两种方式去设置，第一个方法是通过Framework在运行时，动态的为当前的 Framework预留一些资源，第二个是用户可以通过http endpoint直接在某个agent上为某个role去预留一些资源。
        </li>
        <li>
         Allocated Resources Resources: 已经分配的资源，主要包含两类，第一类是已经被Framework接受用于执行作业的资源，第二类是被outstanding offer所占用的那些资源。
        </li>
        <li>
         Revocable Resources：可撤销回收或者可被抢占的资源。现在Revocable的资源可以分两类：Usage Slack和Allocation Slack，当前的逻辑这两类资源都是通过agent去杀掉使用这类资源的executor来释放资源。
        </li>
        <li>
         Reservation Slack：主要是指agent上总的资源和这个agent上预约的资源差值，这部分资源主要是作为unreserved resource供其它role去使用。
        </li>
        <li>
         Allocation Slack： 预留资源和实际分配预留资源的差值。预留资源减掉实际分配预留资源极为allocation slack，这部分资源可以被借给其他的role去使用，当当前的role有新作业时，会对借出去的资源进行回收。这个项目现在还在进行中，感兴趣的可以 看下Mesos-1607.
        </li>
        <li>
         Usage Slack：实际分配的资源和实际使用的资源差值，举个例子，Mesos分给某个executor/task 10个cpus，但是实际当这个task在运行的时候，只是用了60%的cpus，那么我们就可以把剩余的40%作为usage slack汇报给Mesos allocator对这部分资源进行重新调度。当然因为Usage Slack都是通过plugin的形式去做的，用户可以根据自己的需求写自己的resources estimator和qos controller来对usage slack进行处理。
        </li>
       </ul>
       <h2>
        Mesos社区计划
       </h2>
       <hr/>
       <p>
        接下来我们看一下Mesos社区计划做的项目。
       </p>
       <h3>
        Quota Enhancement Mesos-4392
       </h3>
       <p>
        当 前Quota的实现有一些缺陷可能会导致系统的资源使用率不高，例如一个role的quota设置为cpus：100；mem：2048，但是当在真正使 用的时候，这个role可能只有cpus：30；mem：1024被Framework去使用了，剩下的cpus：70；mem：1024因为Quota 的限制，不能被其它的role去使用，造成了资源浪费。所以社区目前有个项目计划对Quota做一些改进，加入一种新的revocable resources，名字还没定，但是我估计可能会叫Quota Slack，就是被Quota预留的但是没有被分配出去的资源，这部分资源可以作为revocable resources，借给其它的role去使用，提升系统的资源利用率。当借出去资源的role又有新的资源请求时，会通过杀掉一些使用Quota Slack的executor来释放资源。
       </p>
       <h3>
        Optimistic Offer Mesos-1607
       </h3>
       <p>
        需要这个功能的主要 原因是，现在所有的offer都是pessimistic Offer，所谓的pessimistic Offer就是说当一个offer被发给Framework后，就被当前的Framework锁定了，其它的famework都不能使用这个offer， 只有当在这个offer上launch完task后，Framework把当前offer剩余的资源返回给allocator后，这个offer才能被下 一个Framework去使用。Optimistic Offer主要是想当Mesos allocator发出去一个offer时，多个Framework可以同时竞争这个resources， 谁抢到这个offer，这个offer就可以为谁所用。
       </p>
       <h3>
        Multi-Role Framework Mesos-1763
       </h3>
       <p>
        当前Mesos一个Framework只能使用一个role上的资源，如果一个Framework在注册的时候没有指定role，那它就会用默认的role(*)，role的主要作用是：
       </p>
       <ol>
        <li>
         首先是每个role都会有个weight，如果一个role的weight比较高的话，那么在Mesos allocator进行资源分配的时候，weight高的会按照DRF分配策略拿到比较多的资源。
        </li>
        <li>
         资源预留：资源预留主要是通过role去做的，每个role可以静态或者动态的去预留一些资源。
        </li>
        <li>
         资源配额：每个role可以配置一个资源配额，这个配额是cluster级别的。
        </li>
       </ol>
       <p>
        如果一个Framework只有一个role的话，对于Meta-Framework会有一个问题。所谓的Meta-Framework 就是这个Framework可以再管理一堆其它的Framework，Marathon就是一个很典型的Meta-Framework，我们可以通过 Marathon管理Spark，Kubernetes，Swarm等Framework。但是因为现在一个Framework只能有一个role，所以 即使Marathon可以管理多个Framework，目前意义也不是太大，因为所有的Framework共享同一个role，资源分配，利用都不是很有 效率。所以现在一个workaround的方法是每个Marathon只管理一个Framework。
       </p>
       <p>
        如果引入了Multiple role支持后，我们就可以给Marathon设置多个role，被Marathon管理的Framework可以每个使用一个role，这样 Marathon就可以把不同role的资源分配给上层的Framework，提升了资源分配，共享的效率。
       </p>
       <h3>
        Fine Grained Resource Offer Mesos-3765
       </h3>
       <p>
        所 谓的细粒度的Resource Offer，主要是相对于现在的Mesos Offer来说的，当前的Mesos Allocator在给在给Framework发Offer的时候，都是粗力度的，所谓的粗力度就是在给上层的Framework分配resources offer的时候，总是把某个agent上所有的所有资源发给上层的某个Framework，也就是说某个agent在某一时刻只能作为一个 Framework的offer。当前这种粗力度的offer分配导致的主要问题是在某些情况下，可能会导致一些Framework拿不到资源。一个例子 就是一个Mesos集群有少量的很强大的agent和大量greedy的Framework，Framework的数量多于agent的数量，在这种情况 下，会导致一些Framework拿不到资源运行作业。
       </p>
       <p>
        如果Mesos的Allocator能按照细粒度的方式对资源进行分配，那么就可以 把一个agent上的resource作为多个offer分发给上层的多个Framework，保证上层的Framework能对资源共享，不会因为某些 贪婪的framwork导致其他的framwork不能运行。
       </p>
       <p>
        关于这个项目的方案，现在还在讨论，有人建议看能不能让Framework直 接把请求发给Mesos，然后Mesos直接把当前Framework需要的资源发给它就完了。社区的反馈是，如果让Framework主动申请资源，可 能会导致一些贪婪的Framework或者一些用户写的有bug的Framework把系统资源都占了，导致其他的Framework不能运行。另外一个 方案时Mesos Master在启动时，指定Offer的大小，Mesos Allocator在发offer的时候，会按照制定的Offer的大小发offer，这个方案可能会被采纳。
       </p>
       <h3>
        Unified Container Mesos-2840
       </h3>
       <p>
        Docker 是Mesos的一等公民，所以Mesos社区最近在对docker集成作比较大的改进，“Unified Container”是期望Mesos能统一的管理不同的container specifications, 例如 Docker, Appc (rkt), OCP (oci)等等。这一块的主要改动会在MesosContainerizer。现有的Docker Containerizer会保持不变，不知道等MesosContainerizer完全支持Docker后，这个Docker的 Containerizer还会不会继续维护就说不定了，这个还得看社区的发展。
       </p>
       <h3>
        Mesos的所有设计文档
       </h3>
       <p>
        <a href="https://cwiki.apache.org/confluence/display/mesos/Design+docs+--+Shared+Links" target="_blank">
         https://cwiki.apache.org/confluence/display/mesos/Design+docs+–+Shared+Links
        </a>
        ，大家可以通过这个链接拿到基本上所有Mesos的设计文档，可以挑几个感兴趣的看看，了解下Mesos的工作原理。
       </p>
       <h2>
        IBM Platform Computing &amp; Mesos
       </h2>
       <hr/>
       <p>
        最 后介绍一下IBM在Mesos基础上研发的Mesos Connector。Mesos Connector主要是使Mesos集成了IBM Platform Computing的EGO强大的资源共享，资源调度策略，为Mesos提前加入了社区现在还没有的资源抢占，Optimistic Offer的功能。
       </p>
       <p>
        IBM Mesos Conenctor的主要特点如下：
       </p>
       <h3>
        1）丰富的资源共享策略
       </h3>
       <p>
        IBM Platform Computing EGO 是一个企业级的资源调度系统，为用户提供丰富的资源共享策略，用户可以根据自己的需求定义自己自然分配计划。Mesos 与 EGO 集成起来后，这些策略也适用于 Mesos 的 Frameworks。
       </p>
       <p>
        管 理员根据每个 Role/Framework 的需求，可以为其定义一定量的 Owned 资源. 就是说这些资源一定可以得到保证的，不管 Framework 什么时候想要这些资源。Owned 资源定义支持多种形式，可以是以物理机器为单位的多个机器，也可以是百分比的方式拥有每个物理机器上百分之多少。如果 Role/Framework允许，在他自己不用的时候可以把这些owned 的资源借给其他人使用。这样最大化的提供整个集群的资源利用率。
       </p>
       <p>
        管 理员根据每个 Role/Framework 的需求，可以定义一些资源共享策略。那些被别人 Own 完，剩下的资源称之为共享资源，每个用户都可以使用的。但每个用户使用共享资源的优先级可以不同，使用共享资源的比例也可以不同。首先，优先级高的 Role/Framework 永远优先使用共享资源，在必要的情况下，可以抢占优先级的 Role/Framework 的共享资源。这是下面要提到的资源抢占。其次，如果 Role/Framework 优先级相同，他们根据资源比例配比去使用共享资源，如果某个 Role/Framework 使用了超过了他自己配比的资源，资源抢占也会发生。还可以进一步为 Role/Framework 配置共享资源使用上限。如果贡献资源使用将要超过设置的上限，Mesos-EGO 就不允许 Role/Framework 再启动作业了。
       </p>
       <h3>
        2）资源抢占式策略
       </h3>
       <p>
        资源抢占主要发生在一下三种情况下：
       </p>
       <ol>
        <li>
         某个 Role/Framework 借了别人 Owned 资源。 但资源拥有者想要把借出去的资源要回来，资源抢占就发生了。
        </li>
        <li>
         高优先级 Role/Framework 抢占低优先级 Framework/role 使用的共享资源。
        </li>
        <li>
         某个 Role/Framework 使用了超过配比给他的共享资源。这时候 Mesos-EGO 会尝试根据资源配比去平衡 Role/Framework 使用的共享资源，所谓的资源抢占也就发生了。
        </li>
       </ol>
       <p>
        当资源抢占发生时，Mesos-EGO 会给 Framework 发 InverseOffer 把要抢占的资源要回来。一般会给 Framework 一定的缓冲时间，只要在要求时间内把作业停掉，把资源释放了就行。但如果 Framework 不配合，Mesos-EGO 会强制 Framework 的一些作业，把资源释放出来给高优先级 Framework，或资源本身所有者使用。
       </p>
       <blockquote>
        <p>
         <strong>
          作者简介
         </strong>
        </p>
        <p>
         刘光亚，2008年于西安交通大学软件学院获得硕士学位，目前就职于IBM Platform Computing 系统科技部云计算部门，担任云计算开发部架构师。自2013年5月开始参与OpenStack社区的开发工作，参与的项目包括Nova、Cinder、 Heat和Magnum等项目，目前担任Magnum的core member。同时自2014年12月参与Mesos生态系统的调研以及Mesos社区的开发工作，Mesos活跃贡献者。西安OpenStack Meetup和Mesos Meetup组织者。
        </p>
       </blockquote>
      </div>
      <div>
       <strong>
        注：转载文章均来自于公开网络，仅供学习使用，不会用于任何商业用途，如果侵犯到原作者的权益，请您与我们联系删除或者授权事宜，联系邮箱：contact@dataunion.org。转载数盟网站文章请注明原文章作者，否则产生的任何版权纠纷与数盟无关。
       </strong>
      </div>
      <!--content_text-->
      <div class="fenxian">
       <!-- JiaThis Button BEGIN -->
       <div class="jiathis_style_32x32">
        <p class="jiathis_button_weixin">
        </p>
        <p class="jiathis_button_tsina">
        </p>
        <p class="jiathis_button_qzone">
        </p>
        <p class="jiathis_button_cqq">
        </p>
        <p class="jiathis_button_tumblr">
        </p>
        <a class="jiathis jiathis_txt jtico jtico_jiathis" href="http://www.jiathis.com/share" target="_blank">
        </a>
        <p class="jiathis_counter_style">
        </p>
       </div>
       <!-- JiaThis Button END -->
      </div>
     </article>
     <!--content-->
     <!--相关文章-->
     <div class="xianguan">
      <div class="xianguantitle">
       相关文章！
      </div>
      <ul class="pic">
       <li>
        <a href="http://dataunion.org/24670.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/03/20141222134630106-300x164.png"/>
        </a>
        <a class="link" href="http://dataunion.org/24670.html" rel="bookmark" title="Apache Spark 不过时的六大理由">
         Apache Spark 不过时的六大理由
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24558.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/wKiom1dcvqDBYzojAAF3j3hfL_s877.jpg-wh_651x-s_1673119543-300x197.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24558.html" rel="bookmark" title="实现R与Hadoop联合作业的三种方法">
         实现R与Hadoop联合作业的三种方法
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24454.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/06/234040u557x77z325w2g3o-267x200.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24454.html" rel="bookmark" title="LinkedIn 开源其分布式对象存储系统 Ambry">
         LinkedIn 开源其分布式对象存储系统 Ambry
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/24349.html">
         <img src="http://dataunion.org/wp-content/uploads/2016/05/20150402110749389-249x200.jpg"/>
        </a>
        <a class="link" href="http://dataunion.org/24349.html" rel="bookmark" title="生活处处皆学问，我从星巴克咖啡学到的5点架构经验">
         生活处处皆学问，我从星巴克咖啡学到的5点架构经验
        </a>
       </li>
      </ul>
     </div>
     <!--相关文章-->
     <div class="comment" id="comments">
      <!-- You can start editing here. -->
      <!-- If comments are open, but there are no comments. -->
      <div class="title">
       期待你一针见血的评论，Come on！
      </div>
      <div id="respond">
       <p>
        不用想啦，马上
        <a href="http://dataunion.org/wp-login.php?redirect_to=http%3A%2F%2Fdataunion.org%2F21814.html">
         "登录"
        </a>
        发表自已的想法.
       </p>
      </div>
     </div>
     <!-- .nav-single -->
    </div>
    <!--Container End-->
    <aside id="sitebar">
     <div class="sitebar_list2">
      <div class="wptag">
       <span class="tagtitle">
        热门标签+
       </span>
       <div class="tagg">
        <ul class="menu" id="menu-%e5%8f%8b%e6%83%85%e9%93%be%e6%8e%a5">
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1605" id="menu-item-1605">
          <a href="http://taidizh.com/">
           泰迪智慧
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20884" id="menu-item-20884">
          <a href="http://www.transwarp.cn/">
           星环科技
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3538" id="menu-item-3538">
          <a href="http://datall.org/">
           珈和遥感
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-20888" id="menu-item-20888">
          <a href="http://www.chinahadoop.cn/">
           小象学院
          </a>
         </li>
        </ul>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <div class="textwidget">
       <div align="center">
        <a href="http://study.163.com/course/courseMain.htm?courseId=991022" target="_blank">
         <img src="http://dataunion.org/wp-content/uploads/2016/03/dv.jpg"/>
        </a>
       </div>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       文章分类
      </h4>
      <div class="tagcloud">
       <a class="tag-link-44" href="http://dataunion.org/category/industry/demo" style="font-size: 10.204724409449pt;" title="4个话题">
        Demo展示
       </a>
       <a class="tag-link-31" href="http://dataunion.org/category/experts" style="font-size: 15.826771653543pt;" title="52个话题">
        专家团队
       </a>
       <a class="tag-link-870" href="http://dataunion.org/category/tech/ai" style="font-size: 19.795275590551pt;" title="273个话题">
        人工智能
       </a>
       <a class="tag-link-488" href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f" style="font-size: 8pt;" title="1个话题">
        加入数盟
       </a>
       <a class="tag-link-869" href="http://dataunion.org/category/tech/viz" style="font-size: 17.204724409449pt;" title="93个话题">
        可视化
       </a>
       <a class="tag-link-30" href="http://dataunion.org/category/partners" style="font-size: 10.645669291339pt;" title="5个话题">
        合作伙伴
       </a>
       <a class="tag-link-889" href="http://dataunion.org/category/parterc" style="font-size: 11.582677165354pt;" title="8个话题">
        合作会议
       </a>
       <a class="tag-link-104" href="http://dataunion.org/category/books" style="font-size: 12.96062992126pt;" title="15个话题">
        图书
       </a>
       <a class="tag-link-220" href="http://dataunion.org/category/tech/base" style="font-size: 19.850393700787pt;" title="281个话题">
        基础架构
       </a>
       <a class="tag-link-219" href="http://dataunion.org/category/tech/analysis" style="font-size: 19.409448818898pt;" title="232个话题">
        数据分析
       </a>
       <a class="tag-link-887" href="http://dataunion.org/category/tech/dm" style="font-size: 13.291338582677pt;" title="17个话题">
        数据挖掘
       </a>
       <a class="tag-link-34" href="http://dataunion.org/category/tech" style="font-size: 20.732283464567pt;" title="404个话题">
        文章
       </a>
       <a class="tag-link-1" href="http://dataunion.org/category/uncategorized" style="font-size: 22pt;" title="693个话题">
        未分类
       </a>
       <a class="tag-link-4" href="http://dataunion.org/category/events" style="font-size: 14.503937007874pt;" title="29个话题">
        活动
       </a>
       <a class="tag-link-890" href="http://dataunion.org/category/tech/%e6%b7%b1%e5%ba%a6%e5%ad%a6%e4%b9%a0" style="font-size: 10.204724409449pt;" title="4个话题">
        深度学习
       </a>
       <a class="tag-link-221" href="http://dataunion.org/category/tech/devl" style="font-size: 18.968503937008pt;" title="193个话题">
        编程语言
       </a>
       <a class="tag-link-888" href="http://dataunion.org/category/career" style="font-size: 15.661417322835pt;" title="48个话题">
        职业规划
       </a>
       <a class="tag-link-5" href="http://dataunion.org/category/jobs" style="font-size: 14.11811023622pt;" title="25个话题">
        职位
       </a>
       <a class="tag-link-871" href="http://dataunion.org/category/industry" style="font-size: 15.716535433071pt;" title="49个话题">
        行业
       </a>
       <a class="tag-link-613" href="http://dataunion.org/category/industry/case" style="font-size: 16.984251968504pt;" title="84个话题">
        行业应用
       </a>
       <a class="tag-link-885" href="http://dataunion.org/category/industry/news" style="font-size: 17.425196850394pt;" title="102个话题">
        行业资讯
       </a>
       <a class="tag-link-10" href="http://dataunion.org/category/training" style="font-size: 14.228346456693pt;" title="26个话题">
        课程
       </a>
       <a class="tag-link-16" href="http://dataunion.org/category/sources" style="font-size: 15.661417322835pt;" title="48个话题">
        资源
       </a>
      </div>
     </div>
     <div class="sitebar_list">
      <h4 class="sitebar_title">
       功能
      </h4>
      <ul>
       <li>
        <a href="http://dataunion.org/wp-login.php?action=register">
         注册
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/wp-login.php">
         登录
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/feed">
         文章
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="http://dataunion.org/comments/feed">
         评论
         <abbr title="Really Simple Syndication">
          RSS
         </abbr>
        </a>
       </li>
       <li>
        <a href="https://cn.wordpress.org/" title="基于WordPress，一个优美、先进的个人信息发布平台。">
         WordPress.org
        </a>
       </li>
      </ul>
     </div>
    </aside>
    <div class="clear">
    </div>
   </div>
   <!--main-->
   ﻿
   <footer id="dibu">
    <div class="about">
     <div class="right">
      <ul class="menu" id="menu-%e5%ba%95%e9%83%a8%e8%8f%9c%e5%8d%95">
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18024" id="menu-item-18024">
        <a href="http://dataunion.org/category/partners">
         合作伙伴
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20881" id="menu-item-20881">
        <a href="http://dataunion.org/contribute">
         文章投稿
        </a>
       </li>
       <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-20872" id="menu-item-20872">
        <a href="http://dataunion.org/category/%e5%8a%a0%e5%85%a5%e6%95%b0%e7%9b%9f">
         加入数盟
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22441" id="menu-item-22441">
        <a href="http://dataunion.org/f-links">
         友情链接
        </a>
       </li>
       <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20874" id="menu-item-20874">
        <a href="http://dataunion.org/aboutus">
         关于数盟
        </a>
       </li>
      </ul>
      <p class="banquan">
       数盟社区        ，
        做最棒的数据科学社区
      </p>
     </div>
     <div class="left">
      <ul class="bottomlist">
       <li>
        <a href="http://weibo.com/DataScientistUnion  " target="_blank" 　title="">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weibo.png"/>
        </a>
       </li>
       <li>
        <a class="cd-popup-trigger" href="http://dataunion.org/21814.html#0">
         <img src="http://dataunion.org/wp-content/themes/yzipi/images/weixin.png"/>
        </a>
       </li>
      </ul>
      <div class="cd-popup">
       <div class="cd-popup-container">
        <h1>
         扫描二维码,加微信公众号
        </h1>
        <img src="http://dataunion.org/wp-content/themes/yzipi/images/2014-12-06-1515289049.png"/>
        <a class="cd-popup-close" href="http://dataunion.org/21814.html">
        </a>
       </div>
       <!-- cd-popup-container -->
      </div>
      <!-- cd-popup -->
     </div>
    </div>
    <!--about-->
    <div class="bottom">
     <a href="http://dataunion.org/">
      数盟社区
     </a>
     <a href="http://www.miitbeian.gov.cn/" rel="external nofollow" target="_blank">
      京ICP备14026740号
     </a>
     联系我们：
     <a href="mailto:contact@dataunion.org" target="_blank">
      contact@dataunion.org
     </a>
     <div class="tongji">
     </div>
     <!--bottom-->
     <div class="scroll" id="scroll" style="display:none;">
      ︿
     </div>
    </div>
   </footer>
   <!--dibu-->
  </div>
 </body>
</html>